package android.slc.base.ui.widget.table;

import javafx.application.Platform;
import javafx.scene.control.TableView;
import javafx.scene.control.skin.TableColumnHeader;
import javafx.scene.control.skin.TableViewSkin;

import java.util.List;

public class TableViewUtils {
    public static void setHeadLabelCenter(TableView<?> tableView) {
        setHeadLabelCenter(tableView, false);
    }

    public static void setHeadLabelCenter(TableView<?> tableView, boolean runLast) {
        if (runLast) {
            Platform.runLater(() -> execHeadLabelCenter(tableView));
            return;
        }
        execHeadLabelCenter(tableView);
    }

    private static void execHeadLabelCenter(TableView<?> tableView) {
        try {
            TableViewSkin<?> tableViewSkin = (TableViewSkin<?>) tableView.getSkin();
            if (tableViewSkin instanceof OpenTableViewSkin<?> openTableViewSkin) {
                List<TableColumnHeader> tableColumnHeaderList = openTableViewSkin.getTableHeaderRow().getRootHeader().getColumnHeaders();
                if (tableColumnHeaderList != null && !tableColumnHeaderList.isEmpty()) {
                    tableColumnHeaderList.get(tableColumnHeaderList.size() - 1).getStyleClass().add("table-view-column-header-center");
                }
            }
        } catch (NullPointerException e) {

        }
    }
}
